<?php

namespace Unl\HomologacionBundle\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

use Unl\HomologacionBundle\Entity\Universidad;
use Unl\HomologacionBundle\Entity\Area;
use Unl\HomologacionBundle\Entity\Persona;
use Symfony\Component\HttpFoundation\Request;


class UniversidadController extends Controller
{
    /**
     * @Route("/editarPersona", name="editarPersona")
     * @Template()
     */
    public function editarPersonaAction(Request $request)
    {
        $persona = new Persona();
/*        $persona->setNombre('Gerson');
        $persona->setApellido('Zaragocin');
        $persona->setEmail('');
        $persona->setCedula('1103735237');
        $persona->setTelefono('091834021');
*/
	$formBuilder = $this->createFormBuilder($persona);
	
	$formBuilder->add('nombre', 'text');
        $formBuilder->add('apellido', 'text');
        $formBuilder->add('email', 'email');
	$form = $formBuilder->getForm();

	return $this->render('UnlHomologacionBundle:Universidad:new.html.twig', array('form' => $form->createView(),));

    }



    /**
     * @Route("/guardarPersona", name="guardarPersona")
     * @Template()
     */
    public function guardarPersonaAction()
    {
        $persona = new persona;
        $persona->setNombre('Gerson');
        $persona->setApellido('Zaragocin');
        $persona->setEmail('a@gmail.com');
        $persona->setCedula('1103735237');
        $persona->setTelefono('091834021');


        $validador = $this->get('validator');
        $errores  = $validador->validate($persona);

	if (count($errores) == 0){
           $em = $this->getDoctrine()->getEntityManager();
           $em->persist($persona);
           $em->flush();
           return new Response('PERSONA GUARDADA');
        }
	else{
	   return new Response(print_r($errores, true));
	}
    }


    /**
     * @Route("/guardar/{id}")
     * @Template()
     */
    public function saveAction()
    {
	$universidad = new Universidad();
	$universidad->setNombre('UTE');
	$universidad->setCodigo('1101');
	$universidad->setDescription('Primera universidad publica de Loja');

	$em = $this->getDoctrine()->getEntityManager();
	$em->persist($universidad);
	$em->flush();

	return new Response('UNIVERSIDAD GUARDADA');
    }


    /**
     * @Route("/crearArea/{nombre}")
     * @Template()
     */
    public function createAreaAction($nombre)
    {
        $universidad = new Universidad();
        $universidad->setNombre($nombre);
        $universidad->setCodigo('1101');
        $universidad->setDescription('Primera universidad publica de Loja');


	$area = new Area();
    	$area->setNombre('Energia');
        $area->setDescription('Descripcion area');

	// relate this product to the category
        //$area->setUniversidad($universidad);
	$universidad->addArea($area);

	$em = $this->getDoctrine()->getEntityManager();
	$em->persist($universidad);
	$em->flush();
	return new Response('Creada universidad y area: '.$area->getId().' Universidad '.$universidad->getId());
    }


    /**
     * @Route("/mostrar/{id}")
     * @Template()
     */
    public function showAction($id)
    {
        $repository =  $this->getDoctrine()->getRepository('UnlHomologacionBundle:Universidad');
        $universidad = $repository->findOneByNombre('UTE');
        if (!$universidad) {
            throw $this->createNotFoundException('No universidad found for id '.$id);
        }
        return new Response ('UNIVERSIDAD RECUPERADA '.$universidad->getCodigo().'  '.$universidad->getNombre());
    }


    /**
     * @Route("/actualizar/{id}")
     * @Template()
     */
    public function updateAction($id)
    {
        $repository =  $this->getDoctrine()->getRepository('UnlHomologacionBundle:Universidad');
        $universidad = $repository->find($id);
        if (!$universidad) {
            throw $this->createNotFoundException('No universidad found for id '.$id);
        }
        $em = $this->getDoctrine()->getEntityManager();
        $universidad->setNombre('ESPE');
        $em->flush();
        return new Response ('UNIVERSIDAD ACTUALIZADA ');
     }

}

